/**
 * Created with CLion.
 * Description: 
 * User: loong
 * Date: 2020-07-14
 * Time: 22:23
 */
#include "SetPath.h"
#include <stdlib.h>

SetPath::SetPath(QWidget *parent) {

}

SetPath::~SetPath() {

}

/**
 * @brief C++设置单一环境变量
 */
void SetPath::setPath1() {
    /*
     * C++设置、获取单一环境变量。注意：putenv设置的值需为 xx=xx的形式
     */
    putenv("Py_test=E:\\python");
    char *env = std::getenv("Py_test");
    printf("getenv:%s",env);


}

/**
 * @brief C++ 设置Path
 */
void SetPath::setPath2() {
    /*
     * C++ 设置 Path
     */
    std::string env = getenv("Path");
    qDebug()<<"set before:--------------------\n "<<QString::fromStdString (getenv("Path"));
    env += ";E:\\test;";
    env = "Path=" + env;
    putenv(env.c_str());
    qDebug()<<"set after:--------------------\n "<<QString::fromStdString (getenv("Path"));
}

/**
 * @brief 使用 Qt设置单一环境变量
 */
void SetPath::setPath3() {
    qputenv("Py_test",QByteArray("E:\\test"));
    qDebug()<< qgetenv("Py_Test");
}

/**
 * @brief Qt 设置Path
 */
void SetPath::setPath4() {
    qputenv("Path",qgetenv("Path")+";E:\\test;");
    qDebug()<<qgetenv("Path");
}

/**
 * @brief Qt QProcessEnvironment设置单一变量
 */
void SetPath::setPath5() {
    QProcessEnvironment envirenment = QProcessEnvironment::systemEnvironment();
    envirenment.insert("Py_test","E:\\test");
    qDebug()<<envirenment.value("Py_test");
}

/**
 * @brief Qt QProcessEnvironment 设置Path
 */
void SetPath::setPath6() {
    QProcessEnvironment envirenment = QProcessEnvironment::systemEnvironment();
    envirenment.insert("Path",envirenment.value("Path")+";E:\\test;");
    qDebug()<<envirenment.value("Path");
}
